package cn.com.cpic.insurance.rulecheck.core.parameter;

import cn.com.cpic.insurance.rulecheck.core.Tokenable;

/**
 * 参数定义
 * 
 * @author 代波
 * @since 2011-8-13
 */
public interface ParameterDefine extends Tokenable<String> {
	static enum Type {
		LONG, DOUBLE, STRING, BOOLEAN
	}

	static enum Scope {
		RUNTIME, SYSTEM
	}

	/**
	 * 获得参数的对用户友好的可读名称
	 * 
	 * @return 参数名称
	 */
	String getName();

	/**
	 * 获得此参数的描述信息
	 * 
	 * @return 参数的描述信息
	 */
	String getDesc();

	/**
	 * 获得参数的类型
	 * 
	 * @return 参数类型
	 */
	Type getType();

	/**
	 * 获得参数的范围
	 * 
	 * @return 参数范围
	 */
	Scope getScope();
}
